package com.pz.dx.common.exception;

import lombok.Getter;

/**
 *   ○ 10：通用
 *     ■ 001：参数格式校验
 *     ■ 002：线程异常-
 *     ■ 003：数据库异常
 *     ■ 004：数据库保存数据异常
 *     ■ 005：mq 消息 ack 异常-
 *     ■ 006：mq 服务异常-
 *     ■ 007：创建aliPayClient实例异常-
 *     ■ 008：请求流量过多
 *     ■ 009：Bean初始化异常
 *     ■ 010：mongodb异常-ID为空
 *     ■ 011：entity实体异常异常-没有设置主键
 *     ■ 012：分页查询参数异常
 *     ■ 013：mongodb事务异常-
 *     ■ 014：文件IO异常-
 *     ■ 015：邮件异常-
 *   ○ 20：业务异常
 *     ■ 001：视频不存在
 *     ■ 002：用户未登录
 *     ■ 003：用户登录失败
 *     ■ 004：非法评论排序
 *     ■ 005：搜索用户排序参数错误
 *     ■ 006：用户不存在
 *     ■ 007：订阅类型异常
 *     ■ 008：用户密码错误
 *     ■ 009：opinion获取model非法
 *   ○ 50：minio
 *     ■ 001：MultipartException-
 *     ■ 002：stream exception-
 *     ■ 003：put objection to minio exception-
 *     ■ 004：origin file name is empty!
 *     ■ 005：get object url fail--
 *
 */
@Getter
public enum BizCodeEnum {

    UNKNOWN_EXCEPTION(10000, "系统未知异常"),
    VAILD_EXCEPTION(10001,"参数校验出现问题"),
    THREAD_EXCEPTION(10002, "线程异常-"),
    MYSQL_EXCEPTION(10003, "数据库异常"),
    MYSQL_SAVE_Exception(10004,"数据库保存数据异常"),
    RABBITMQ_ACK_EXCEPTION(10005,"mq 消息 ack 异常-"),
    RABBITMQ_SERVER_EXCEPTION(10006,"mq 服务异常-"),
    CREATE_ALIPAY_INSTANCE_EXCEPTION(10007,"创建aliPayClient实例异常-"),
    TOO_MANY_REQUEST(10008,"请求流量过多"),
    BEAN_INIT_EXCEPTION(10009,"Bean初始化异常-"),
    MONGODB_ID_NULL_EXCEPTION(10010, "mongodb异常-ID为空"),
    ENTITY_ID_ANNOTATION_EXCEPTION(10011, "entity实体异常-没有设置主键注解"),
    PAGE_SEARCH_ARGS_EXCEPTION(10012, "分页查询参数异常"),
    MONGODB_TRANSACTION_EXCEPTION(10013, "mongodb事务异常-"),
    FILE_IO_EXCEPTION(10014, "文件IO异常-"),
    MAIL_EXCEPTION(10015, "邮件异常-"),

    VIDEO_NOT_EXIST(20001, "视频不存在-"),
    USER_NOT_LOGIN(20002, "用户未登录"),
    USER_LOGIN_FAIL(20003, "用户登录失败"),
    ILLEGAL_COMMENT_SORT(20004, "非法评论排序"),
    SEARCH_USER_SORT_ARGS_EXCEPTION(20005, "搜索用户排序参数错误"),
    USER_NOT_EXIST(20006, "用户不存在-"),
    SUBSCRIBE_TYPE_EXCEPTION(20007, "订阅类型异常"),
    USER_ERROR_PWD(20008, "密码错误"),
    OPINION_LIST_MODEL_ILLEGAL(20009, "opinion获取model非法"),

    MultipartException(50001, "MultipartException-"),
    INPUTIO_EXCEPTION(50002, "stream exception-"),
    PUT_OBJECT_EXCEPTION(50003, "put objection to minio exception-"),
    UPLOAD_FILENAME_EMPTY(50004, "origin file name is empty!"),
    GET_RRL_EXCEPTION(50005, "get object url fail--");


    private final int code;
    private final String msg;
    BizCodeEnum(int code, String msg){
        this.code = code;
        this.msg = msg;
    }
}
